#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Langfuse 提示词管理快速开始示例
使用 Dify API 进行 AI 对话
"""

from app_v3_with_prompt_management import LangfusePromptManager

def quick_demo():
    """
    快速演示如何使用 Langfuse 提示词管理
    """
    print("🚀 Langfuse 提示词管理快速演示")
    print("=" * 50)
    
    # 1. 初始化提示词管理器
    print("\n1. 初始化提示词管理器...")
    prompt_manager = LangfusePromptManager()
    print("✓ 初始化完成")
    
    # 2. 创建提示词
    print("\n2. 创建客户服务提示词...")
    customer_prompt = """
    你是 {company_name} 的专业客户服务代表。
    
    客户问题：{user_input}
    
    请按照以下要求回答：
    - 保持友好和专业的态度
    - 提供准确和有用的信息
    - 如果无法回答，请引导客户联系相关部门
    - 回答要简洁明了，不超过200字
    """
    
    result = prompt_manager.create_prompt(
        name="customer-service-demo",
        prompt_content=customer_prompt,
        version="1.0.0",
        description="客户服务演示提示词"
    )
    
    if result:
        print("✓ 提示词创建成功")
    else:
        print("✗ 提示词创建失败")
        return
    
    # 3. 使用提示词进行对话
    print("\n3. 使用提示词进行对话...")
    
    # 测试问题列表
    test_questions = [
        "我想退货，但是已经超过7天了，还能退吗？",
        "你们的产品质量怎么样？",
        "有什么优惠活动吗？",
        "如何联系客服？"
    ]
    
    for i, question in enumerate(test_questions, 1):
        print(f"\n--- 测试问题 {i} ---")
        print(f"用户: {question}")
        
        try:
            response = prompt_manager.customer_service_chat(
                user_message=question,
                company_name="TechStore",
                session_id=f"demo_session_{i}"
            )
            print(f"AI: {response}")
        except Exception as e:
            print(f"✗ 对话失败: {e}")
    
    # 4. 使用通用聊天方法
    print("\n4. 使用通用聊天方法...")
    try:
        response = prompt_manager.chat_with_prompt(
            prompt_name="customer-service-demo",
            user_message="请介绍一下你们公司的服务",
            variables={
                "company_name": "TechStore",
                "user_input": "请介绍一下你们公司的服务"
            },
            session_id="demo_general_session"
        )
        print(f"通用聊天回复: {response}")
    except Exception as e:
        print(f"✗ 通用聊天失败: {e}")
    
    # 5. 列出所有提示词
    print("\n5. 列出所有提示词...")
    prompts = prompt_manager.list_prompts()
    print(f"找到 {len(prompts)} 个提示词:")
    for prompt in prompts:
        print(f"  - {prompt.name} (版本: {prompt.version})")
    
    print("\n" + "=" * 50)
    print("🎉 演示完成！")
    print("\n💡 提示：")
    print("- 所有对话都会自动记录到 Langfuse 中")
    print("- 可以在 Langfuse 控制台查看追踪数据")
    print("- 支持提示词的版本管理和变量插值")

if __name__ == "__main__":
    quick_demo()
